package com.punai.config.sqlitedomain;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.punai.common.utils.sqlite.SLCDesc;
import com.punai.common.utils.sqlite.SLTDesc;

import java.util.Date;
import java.util.List;

@SLTDesc(tName = "tab_config_feature_element")
public class ConfigFeatureElement {

    @SLCDesc(tc = "ID")
    private String id;
    @SLCDesc(tc = "CODE")
    private String code;
    @SLCDesc(tc = "FEATURE_TYPE")
    private String featureType;
    @SLCDesc(tc = "NAME")
    private String name;
    @SLCDesc(tc = "TYPE")
    private String type;
    @SLCDesc(tc = "SELECT_CODE")
    private String selectCode;
    @SLCDesc(tc = "SELECT_LABEL")
    private String selectLabel;
    /**
     * 是否是其他
     */
    @SLCDesc(tc = "IS_OTHER")
    @JsonProperty("isOther")
    private Boolean isOther;
    @SLCDesc(tc = "HIDE_CODES")
    private String hideCodes;

    /**
     *  是否计算口径
     */
    @SLCDesc(tc = "CALCULATE_CALIBER")
    @JsonProperty("calculateCaliber")
    private Boolean calculateCaliber;
    @SLCDesc(tc = "CREATE_DATE")
    private Date createDate;
    @SLCDesc(tc = "EDIT_STATE")
    private Integer editState;
    @SLCDesc(tc = "LAST_MODIFY")
    private Date lastModify;
    @SLCDesc(tc = "SREACH_KEY")
    private String sreachKey;
    @SLCDesc(tc = "VERSION")
    private Integer version;
    /**
     * 是否必须
     */
    @SLCDesc(tc = "IS_MUST_BE")
    @JsonProperty("isMustBe")
    private Boolean isMustBe;

    /**
     * 建筑工程;装饰工程;安装工程
     */
    @SLCDesc(tc = "ENGINEERING_TYPE")
    private String engineeringType;
    @SLCDesc(tc = "CALCULATE_CALIBER_TYPE")
    private String calculateCaliberType;
    @SLCDesc(tc = "pid")
    private String pid;
    @SLCDesc(tc = "is_sum")
    @JsonProperty("isSum")
    private Boolean isSum ;
    @SLCDesc(tc = "IS_SEARCH")
    @JsonProperty("isSearch")
    private Boolean isSearch;

    @JsonProperty("isQDGF")
    private Boolean isQDGF=false;
    @JsonProperty("isSpecialty")
    private Boolean isSpecialty;

    @JsonProperty("parent")
    private ConfigFeatureElement parent;

    private List<ConfigFeatureElement> children;

    private String classId;
    private String formatId;

    private String prevId;//前一个id
    private String nextId;//后一个id

    public String getPrevId() {
        return prevId;
    }

    public void setPrevId(String prevId) {
        this.prevId = prevId;
    }

    public String getNextId() {
        return nextId;
    }

    public void setNextId(String nextId) {
        this.nextId = nextId;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getFeatureType() {
        return featureType;
    }

    public void setFeatureType(String featureType) {
        this.featureType = featureType;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getSelectCode() {
        return selectCode;
    }

    public void setSelectCode(String selectCode) {
        this.selectCode = selectCode;
    }

    public String getSelectLabel() {
        return selectLabel;
    }

    public void setSelectLabel(String selectLabel) {
        this.selectLabel = selectLabel;
    }



    public String getHideCodes() {
        return hideCodes;
    }

    public void setHideCodes(String hideCodes) {
        this.hideCodes = hideCodes;
    }

    public Date getCreateDate() {
        return createDate;
    }

    public void setCreateDate(Date createDate) {
        this.createDate = createDate;
    }

    public Integer getEditState() {
        return editState;
    }

    public void setEditState(Integer editState) {
        this.editState = editState;
    }

    public Date getLastModify() {
        return lastModify;
    }

    public void setLastModify(Date lastModify) {
        this.lastModify = lastModify;
    }

    public String getSreachKey() {
        return sreachKey;
    }

    public void setSreachKey(String sreachKey) {
        this.sreachKey = sreachKey;
    }


    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }



    public String getEngineeringType() {
        return engineeringType;
    }

    public void setEngineeringType(String engineeringType) {
        this.engineeringType = engineeringType;
    }

    public String getCalculateCaliberType() {
        return calculateCaliberType;
    }

    public void setCalculateCaliberType(String calculateCaliberType) {
        this.calculateCaliberType = calculateCaliberType;
    }

    public String getPid() {
        return pid;
    }

    public void setPid(String pid) {
        this.pid = pid;
    }

    public Boolean getOther() {
        return isOther;
    }

    public void setOther(Boolean other) {
        isOther = other;
    }

    public Boolean getCalculateCaliber() {
        return calculateCaliber;
    }

    public void setCalculateCaliber(Boolean calculateCaliber) {
        this.calculateCaliber = calculateCaliber;
    }

    public Boolean getMustBe() {
        return isMustBe;
    }

    public void setMustBe(Boolean mustBe) {
        isMustBe = mustBe;
    }

    public Boolean getSum() {
        return isSum;
    }

    public void setSum(Boolean sum) {
        isSum = sum;
    }

    public Boolean getSearch() {
        return isSearch;
    }

    public void setSearch(Boolean search) {
        isSearch = search;
    }

    public Boolean getQDGF() {
        return isQDGF;
    }

    public void setQDGF(Boolean QDGF) {
        isQDGF = QDGF;
    }

    public ConfigFeatureElement getParent() {
        return parent;
    }

    public void setParent(ConfigFeatureElement parent) {
        this.parent = parent;
    }

    public List<ConfigFeatureElement> getChildren() {
        return children;
    }

    public void setChildren(List<ConfigFeatureElement> children) {
        this.children = children;
    }

    public Boolean getSpecialty() {
        return isSpecialty;
    }

    public void setSpecialty(Boolean specialty) {
        isSpecialty = specialty;
    }

    public String getClassId() {
        return classId;
    }

    public void setClassId(String classId) {
        this.classId = classId;
    }

    public String getFormatId() {
        return formatId;
    }

    public void setFormatId(String formatId) {
        this.formatId = formatId;
    }

    @Override
    public String toString() {
        return "ConfigFeatureElement{" +
                "id=" + id  +
                ", code=" + code  +
                ", featureType=" + featureType  +
                ", name=" + name  +
                ", type=" + type  +
                ", selectCode=" + selectCode  +
                ", selectLabel=" + selectLabel  +
                ", isOther=" + isOther +
                ", hideCodes=" + hideCodes  +
                ", calculateCaliber=" + calculateCaliber +
                ", createDate=" + createDate +
                ", editState=" + editState +
                ", lastModify=" + lastModify +
                ", sreachKey=" + sreachKey  +
                ", version=" + version +
                ", isMustBe=" + isMustBe +
                ", engineeringType=" + engineeringType  +
                ", calculateCaliberType=" + calculateCaliberType  +
                ", pid=" + pid  +
                ", isSum=" + isSum +
                ", isSearch=" + isSearch +
                ", isSpecialty=" + isSpecialty +
                ", classId=" + classId + "}";
    }
}
